import java.awt.Dimension;

import javax.swing.JSlider;


public class BarSlider extends JSlider{

	/**
	 * die Intialisierungswerte fuer die Konstruktoren
	 */
	public static final int BAR_INIT=50,
							BAR_MIN=10,BAR_MAX=100,MAJOR_TICK=20,MINOR_TICK=5;
	
	
	private static final Dimension dSlider=new Dimension(300,50);
	/**
	 * default-Konstrukor
	 * erstellt neuen JSlider mit festen Werten
	 * setzt Labels, kleine und grosse Abstaende und Werte
	 * koennen nur in festen Intervallen eingestellt werden
	 */
	//default
	public BarSlider(){
		super(BAR_MIN,BAR_MAX,BAR_INIT);
		this.setMajorTickSpacing(MAJOR_TICK);
		this.setMinorTickSpacing(MINOR_TICK);
		this.setPaintLabels(true);
		this.setPaintTicks(true);
		this.setSnapToTicks(true);
	//	this.setPreferredSize(dSlider);
	}//constructor
	
	/**
	 * erstellt Slider nach uebergebenen Groessen
	 * Labels und Ticks werden immer gesetzt - Werte koennen nur bestimmte diskrete Werte sein
	 * @param min der kleinstmoegliche Wert
	 * @param max der groesstmoegliche Wert
	 * @param init dort steht der Schieberegler zu Beginn
	 * @param tick_major die Intervalle
	 */
	//specialized
	public BarSlider(int min, int max, int init,int tick_major){
		super(min,max,init);
		this.setMajorTickSpacing(tick_major);
		this.setPaintLabels(true);
		this.setPaintTicks(true);
		this.setSnapToTicks(true);

		//this.setPreferredSize(dSlider);
	}//constructor
	
	/**
	 * erstellt Slider nach uebergebenen Groessen
	 * Labels und Ticks werden immer gesetzt - Werte koennen nur diskrete Werte sein
	 * (abhaengig von tick_minor)
 	 * @param min der kleinstmoegliche Wert
	 * @param max der groesstmoegliche Wert
	 * @param init dort steht der Schieberegler zu Beginn
	 * @param tick_major die beschrifteten Intervalle
	 * @param tick_minor die Intervalle aus denen jeweils kein Wert angenommen werden kann
	 */
	public BarSlider(int min, int max, int init,int tick_major,int tick_minor){
		super(min,max,init);
		this.setMajorTickSpacing(tick_major);
		this.setMinorTickSpacing(tick_minor);
		this.setPaintLabels(true);
		this.setPaintTicks(true);
		this.setSnapToTicks(true);

		//this.setPreferredSize(dSlider);
	}//constructor
}//class
